/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package javaavanzadopila;


/**
 *
 * @author Jordi
 */

 class  Nodo{

    private Object valor;
    private Nodo anterior;

    /**
     * Get the value of anterior
     *
     * @return the value of anterior
     */
    public Nodo getAnterior() {
        return anterior;
    }

    /**
     * Set the value of anterior
     *
     * @param anterior new value of anterior
     */
    public void setAnterior(Nodo anterior) {
        this.anterior = anterior;
    }

    /**
     * Get the value of valor
     *
     * @return the value of valor
     */
    public Object getValor() {
        return valor;
        
    }

    /**
     * Set the value of valor
     *
     * @param valor new value of valor
     */
    public void setValor(Object valor) {
        this.valor = valor;
    }

    @Override
    public String toString() {
        return (String) valor;
    }

}
public class MiPilaNodo {
    private Nodo ultimoNodo = null;

    public MiPilaNodo() {

    }

    boolean pilaVacia() {

            return ultimoNodo == null;

    }

    public void apilar(Object elemento) {
        Nodo nodoNuevo = new Nodo();
        nodoNuevo.setValor(elemento);
        if (!pilaVacia()){
            nodoNuevo.setAnterior(ultimoNodo);
        }
        ultimoNodo=nodoNuevo;
                }

    public Object desapilar() {
        Nodo nodoTemp = ultimoNodo;
        if (ultimoNodo!=null){
            ultimoNodo=ultimoNodo.getAnterior();

        }
        return nodoTemp;
    }

    public Object Cima() {
        return ultimoNodo;
    }
}



